/**
 * Created by Administrator on 2018/11/12 0012.
 */
var mongoose = require('mongoose');
var User = require("../cors/models/user");
const logger = require("../cors/log").getLogger("test.js");
const  VCODE =require("../config/code"); //错误码

//用于md5加密
var bcrypt = require('bcryptjs')
//加盐数
var SALT_WORK_FACTOR = 10


/***用于生成超级用户****/
mongoose.connect("mongodb://127.0.0.1:27017/sso",{ useNewUrlParser: true }, function(err) {
    if(err){
        console.log('连接失败');
    }else{
        console.log('连接成功');
        createSuper("mannymu","123456",VCODE.type.super);
       //change("mannymu","123123")
    }
});


//创建超级用户
function  createSuper(name,password,typ) {
    User.findOne({type:VCODE.type.super}).then(function (ret) {
        if(ret){
            logger.error("该数据库已经存在一个超级用户，不要再重复创建")
            logger.error(ret);
        }else{
            changeLevel(name,password,typ)
        }
    }).catch(function (ret) {
        logger.error("查找超级用户失败",ret);
    });
}

//修改等级
function changeLevel(name,password,typ) {
    var user = new User({
        name:name,
        password:password,
        type:typ
    })
    user.save().then(function (ret) {
        logger.info("成功的创建了一个超级账户",ret);
    }).catch(function (ret) {
        logger.error("创建用户的等级失败",ret.errmsg);
    })
}

//修改密码
function change(name,pwd) {
    bcrypt.genSalt(SALT_WORK_FACTOR, function (err, salt) {
        if (err)
        {
            console.log(err);
            return;
        }
        bcrypt.hash(pwd, salt, function (err, hash) {
            if (err){
                console.log(err);
                return;
            }
            User.update({
                name:name
            },{password:hash},{
                upsert:false
            }).then(function (ret) {
                if(ret.nModified){
                    console.log("更新成功",ret);
                }else{
                    console.log("更新失败",ret);
                }

            }).catch(function (ret) {
                console.log("更新失败",ret);
            })
          
        })
    })

}

